// package com.jungle.design.mode.service.impl.order;
//
// import com.jungle.design.mode.annotation.Strategy;
// import lombok.extern.slf4j.Slf4j;
// import org.apache.commons.lang3.StringUtils;
// import org.springframework.beans.factory.annotation.Autowired;
// import org.springframework.stereotype.Service;
//
// import java.util.concurrent.ThreadLocalRandom;
//
// @Slf4j
// @Service
// @Strategy(module = "Order")
// public class OrderStrategyImpl {
//
//     @Autowired
//     private BizLocalMessageService bizLocalMessageService;
//
//
//     @Strategy(value = "strategy1")
//     public IStrategyHandler<BInDto, BOutDto> strategy1() {
//
//         return bInDto -> {
//             log.error("订单模块相关策略 strategy1 executeStart");
//             String join = StringUtils.join("strategy1:", bInDto.getParam1(), bInDto.getParam2());
//             BOutDto bOutDto = new BOutDto();
//             bOutDto.setOrderNo(join);
//             bOutDto.setPrice(111);
//
//             SaveBizLocalMessageDto dto = new SaveBizLocalMessageDto();
//             dto.setBizModule((byte)0);
//
//             ThreadLocalRandom localRandom = ThreadLocalRandom.current();
//             dto.setBizNo(localRandom.nextInt(16000,115000)+"");
//             dto.setBizType((byte)0);
//             dto.setMsg("");
//             dto.setMsgDesc("");
//             dto.setHandledCount((byte)0);
//             dto.setMaxHandleCount((byte)0);
//
//             bizLocalMessageService.saveBizLocalMessage(dto);
//             log.error("订单模块相关策略 strategy1 executeEnd");
//             return bOutDto;
//         };
//     }
//
//
//     @Strategy(value = "strategy2")
//     public IStrategyHandler<BInDto, BOutDto> strategy2() {
//
//         return param -> {
//
//             log.error("订单模块相关策略 strategy2 executeStart");
//
//             String join = StringUtils.join("strategy2:", param.getParam1(), param.getParam2());
//             BOutDto bOutDto = new BOutDto();
//             bOutDto.setOrderNo(join);
//             bOutDto.setPrice(11121);
//
//             SaveBizLocalMessageDto dto = new SaveBizLocalMessageDto();
//             dto.setBizModule((byte)0);
//
//             ThreadLocalRandom localRandom = ThreadLocalRandom.current();
//             dto.setBizNo(localRandom.nextInt(6000,15000)+"");
//
//             dto.setBizType((byte)0);
//             dto.setMsg("");
//             dto.setMsgDesc("");
//             dto.setHandledCount((byte)0);
//             dto.setMaxHandleCount((byte)0);
//
//             bizLocalMessageService.saveBizLocalMessage(dto);
//             log.error("订单模块相关策略 strategy2 executeEnd");
//             return bOutDto;
//         };
//     }
// }
